home *** CD-ROM | disk | FTP | other *** search
/ Creative Computers / Creative Computers CD-ROM, Volume 1 (Legendary Design Technologies, Inc.)(1994).iso / shareware / telecom / ncomm / host / host.script < prev    next >
Text File  |  1994-11-17  |  18KB  |  698 lines

  1. ;*******************************************************
  2. ; NComm HOST SYSTEM
  3. ; Version 1.3 891117
  4. ;
  5. ; Copyright © 1989 Daniel Bloch
  6. ;*******************************************************
  7.  
  8.     set    $version= "1.3"
  9.  
  10. ;--------------------------------------------
  11. ; Set these variables to fit your needs
  12. ;--------------------------------------------
  13.     set    $dir    = "NComm:host/"        ;Directory for misc. files
  14.     set    $uldir    = "NComm:host/files/"    ;Upload directory
  15.     set    $dldir    = "NComm:host/files/"    ;Download directory
  16.     set    $hold    = "NComm:host/hold/"    ;Hold directory
  17.     set    $holdzoo= "t:HOLD.ZOO"        ;Hold file
  18.     set    $tmp    = "t:NHS.tmp"        ;Temporary file
  19.     set    $passwd    = "abc"            ;User password
  20.     set    $sysop    = "Daniel Bloch"    ;Sysop name
  21.     set    $syspass= "xyz"            ;Sysop password
  22.     set    $sysname= "Dan's BBS"        ;Name of system
  23.     set    $list     = "C:list"        ;Directory lister
  24.  
  25. ;All files in hold directory will be deleted at initialization!!!
  26.  
  27. ;-------------------- M A I N   P R O G R A M -----------------------;
  28.     message    "\f"        ;Clear screen
  29. main:    clrstack
  30.     gosub    init        ;Initialize various stuff
  31.     gosub    connect        ;Wait for RING and answer the phone
  32.     when    "\r\nNO CARRIER\r\n" goto NoCarrier
  33.     gosub    prelog        ;Show opening picture
  34.     gosub    login        ;Get name & password
  35.     IF !$name == $sysop THEN goto user
  36.     set     $sysacc = "TRUE"
  37.     IF $pass == $syspass THEN goto OK
  38.     send    "Wrong!!\n"
  39.     write    $dir"log" "\n"$date"  Wrong password: "$pass"\n"
  40.     gosub    logout
  41.     goto    main
  42. user:    set     $sysacc = "FALSE"
  43.     IF $pass == $passwd THEN goto OK
  44.     send    "Wrong!\n"
  45.     write    $dir"log" "\n"$date"  "$name"  Wrong password: "$pass"\n"
  46.     gosub    login
  47.     IF $pass == $passwd THEN goto OK
  48.     send    "Wrong!!\n"
  49.     write    $dir"log" "\n"$date"  "$name"  Wrong password: "$pass"\n"
  50.     gosub    logout
  51.     goto     main
  52.  
  53. ;User has logged in
  54. OK:    write    $dir"log" "\n"$date"  Login: "$name" ("$baud")\n"
  55.     gosub    postlog
  56.     timeout 2
  57.     echo    off
  58.     send    "^[[97x"
  59.     input    $id "\r"
  60.     echo    on
  61.     timeout    300 goto bibi
  62.     send    "\nPress [ENTER] to continue..."
  63.     input    $dummy "\r"
  64.     send    "\f"
  65.     ascsend    $dir"menu0"
  66.     
  67. ;This is the main loop
  68. loop:    gosub    MainMenu
  69.     send    "Are you sure you want to log off the system (Enter=Y)? "
  70.     input    $cmd "\r"
  71.     IF $cmd == "N" THEN goto loop
  72.     send    "\n"
  73.     gosub    logout
  74.     goto    main
  75.  
  76.  
  77.  
  78.  
  79. ;--------------------- S U B R O U T I N E S ----------------------
  80.  
  81.  
  82. ;********************************************************
  83. ;* Initialize the system
  84. ;********************************************************
  85. init:    config    $dir"host.config"
  86.     hangup
  87.     set    $sysacc = "FALSE"
  88.     echo    off
  89.     dwhens
  90.     timeout    0
  91.     cli    "delete >nil: "$hold"#?"
  92.     return
  93.  
  94.  
  95. ;********************************************************
  96. ;* Wait for CONNECT
  97. ;********************************************************
  98. connect:
  99.         dwhens
  100.     send    " \r"
  101.     gosub    skip
  102. conn0:    message    "\n\n\n"$sysname"   [Press '?' for help]\n"
  103.     message    "Waiting for caller...\n"
  104.     timeout 0
  105.     input    $char ""    ;Get one character
  106.     IF !$char == "?" THEN goto conn1
  107.     message "\n\nSpace = Local login (switch your modem off first!)\n"
  108.     message    "    Q = Quit NHS"
  109.     goto    conn0
  110. conn1:    IF $char == "Q" THEN goto QuitNHS
  111.     IF $char == " " THEN goto Local
  112.  
  113. conn2:    when    "CONNECT 1200" goto conn1200
  114.     when    "CONNECT 2400" goto conn2400
  115.     when    "CONNECT 4800" goto conn4800
  116.     when    "CONNECT 9600" goto conn9600
  117.     dtenths    7
  118.     send    "ATA\n"
  119.     timeout 90 goto connect
  120.     wait    "NO CARRIER"
  121.     goto connect
  122.  
  123. conn3:    dwhens
  124.     timeout 0
  125.     echo    on
  126.     gosub    skip
  127.     return
  128.  
  129. Local:    message    "\nStarting local logon..."
  130.     goto     conn3
  131.  
  132. QuitNHS:
  133.     config    "NComm:NComm.config"
  134.     end
  135.  
  136. conn1200:
  137.     set    $baud = "1200"
  138.     goto    conn3
  139. conn2400:
  140.     set    $baud = "2400"
  141.     goto     conn3
  142. conn4800:
  143.     set    $baud = "4800"
  144.     goto    conn3
  145. conn9600:
  146.     set    $baud = "9600"
  147.     goto     conn3
  148.  
  149.  
  150. ;********************************************************
  151. ;* Show "prelog", i.e. the picture to be shown before
  152. ;* login.
  153. ;********************************************************
  154. prelog:    send    "\f"$sysname" ("$baud") up on "$date"\n"
  155.     send    $NComm" / NComm Host System (NHS) v"$version"\n"
  156.     send    "Copyright © 1989 Daniel Bloch\n\n\n"
  157.     ascsend    $dir"prelog"
  158.     return
  159.  
  160.  
  161. ;********************************************************
  162. ;* Show "postlog", i.e. the picture to be shown after
  163. ;* login.
  164. ;********************************************************
  165. postlog:
  166.     send    "\n\n"
  167.     ascsend    $dir"postlog"
  168. ;    cli    "cookie"
  169.     return
  170.  
  171.  
  172. ;********************************************************
  173. ;* Read user name and password into the variables
  174. ;* $name and $pass.  
  175. ;********************************************************
  176. Login:    echo    on
  177.     timeout 120 goto LogSleep
  178.     send    "\n\nEnter your name: "
  179.     input    $name "\r"
  180.     send    "\nEnter your password: "
  181.     echo     off
  182.     input    $pass "\r"
  183.     echo    on
  184.     timeout 0
  185.     send    "\n"
  186.     return
  187. LogSleep:
  188.     send    "\n\nLogin timed out after 2 minutes\n"
  189.     gosub    logout
  190.     goto     main
  191.  
  192. ;********************************************************
  193. ;Skip junk from the modem
  194. ;********************************************************
  195. skip:    timeout 3 goto SkipOK
  196. more:    wait    ""
  197.     goto more
  198. SkipOK:    timeout 0
  199.     return
  200.  
  201.  
  202. ;********************************************************
  203. ;* Log out
  204. ;********************************************************
  205. logout:    send     "\nThanks for calling "$sysname"!\n"
  206.     hangup
  207.     write    $dir"log" $date"  Logout: "$name"\n"
  208.     cli    "delete >nil: "$holdzoo" "$hold"#?"
  209.     return
  210.  
  211. ;********************************************************
  212. ;* User sleeps
  213. ;********************************************************
  214. bibi:    send     "\n\nLooks like you fell asleep!"
  215.     write    $dir"log" $date"  Sleep disconect\n"
  216.     gosub    logout
  217.     goto    main
  218.  
  219. ;********************************************************
  220. ;Main menu
  221. ;********************************************************
  222. MainMenu:
  223.     send    "\nMain Command (? for menu): "
  224.     input    $cmd "\r"
  225.     send    "\n"
  226.     IF $cmd == "?" THEN ascsend $dir"menu0"
  227.     IF $cmd == "G" THEN return
  228.     IF $cmd == "F" THEN gosub FileMenu
  229.     IF $cmd == "B" THEN gosub BullMenu
  230.     IF $cmd == "O" THEN gosub page
  231.     IF $cmd == "S" THEN gosub sysop
  232.     IF $cmd == "C" THEN gosub Comment
  233.     IF $cmd == "R" THEN gosub Read
  234.     IF $cmd == "E" THEN gosub Enter
  235.     IF $cmd == "RE"then gosub Enter
  236.     goto    MainMenu
  237.  
  238.  
  239. ;********************************************************
  240. ;Chat with SYSOP
  241. ;********************************************************
  242. page:    send     "\nPaging SYSOP...\n"
  243.     send    "(Press Ctrl-Z to exit from chat)\n"
  244.     beep
  245.     dtenths 3
  246.     beep
  247.     dtenths 3
  248.     beep
  249.     write    $dir"log" $date"  Paged operator\n"
  250.     when    "^Z" goto EndChat
  251. chat:    input    $dummy    "\r"
  252.     send    "\n"
  253.     goto    chat
  254. EndChat:
  255.     dlwhen
  256.     send     "\n"
  257.     return
  258.  
  259.  
  260. ;********************************************************
  261. ;File menu
  262. ;********************************************************
  263. FileMenu:
  264.     send    "\nFile Command (? for menu): "
  265.     input    $cmd "\r"
  266.     send    "\n"
  267.     IF $cmd == "?" THEN ascsend $dir"menu1"
  268.     IF $cmd == ""  THEN return
  269.     IF $cmd == "Q" THEN return
  270.     IF $cmd == "L" THEN gosub ListFiles
  271.     IF $cmd == "D" THEN gosub Download
  272.     IF $cmd == "U" THEN gosub Upload
  273.     IF $cmd == "V" THEN gosub ViewZOO
  274.     IF $cmd == "EXT" THEN gosub ExtractZOO
  275.     IF $cmd == "ADD" THEN gosub AddFile
  276.     IF $cmd == "DEL" THEN gosub Remove
  277.     IF $cmd == "DIR" THEN gosub Show
  278.     IF $cmd == "GET" THEN gosub GetHold
  279.     goto    FileMenu
  280.  
  281.  
  282. ;********************************************************
  283. ;List files in download directory
  284. ;********************************************************
  285. ListFiles:
  286.     send    "\n"
  287.     cli     $list" "$dldir
  288.     return
  289.  
  290.  
  291. ;********************************************************
  292. ;Download file
  293. ;********************************************************
  294. Download:
  295.     send    "\nEnter file name: "
  296.     input    $file "\r"
  297.     send    "\n"
  298.     IF $file == "" THEN return
  299.     IF exists $dldir$file THEN goto DownlOK
  300.     send    "File '"$file"' not found!\n"
  301.     return
  302. DownlOK:
  303.     send    "Select transfer protocol (X,Y,Z): "
  304.     input    $proto "\r"
  305.     send    "\n"
  306.     IF $proto == "" THEN return
  307.     IF $proto == "X" THEN goto XDownload
  308.     IF $proto == "Y" THEN goto YDownload
  309.     IF $proto == "Z" THEN goto ZDownload
  310.     send    "Illegal protocol!\n"
  311.     goto     DownlOK
  312. XDownload:
  313.     upload    $dldir$file,x
  314.     write    $dir"log" $date"  Downloaded "$file" (Xmodem)\n"
  315.     return
  316. YDownload:
  317.     upload    $dldir$file,y
  318.     write    $dir"log" $date"  Downloaded "$file" (Ymodem)\n"
  319.     return
  320. ZDownload:
  321.     upload    $dldir$file,z
  322.     write    $dir"log" $date"  Downloaded "$file" (Zmodem)\n"
  323.     return
  324.  
  325.  
  326. ;********************************************************
  327. ;